package com.jmb.apiplatform.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jmb.apiplatform.common.PageResult;
import com.jmb.apiplatform.mapper.ApiTestCacheParameterLogMapper;
import com.jmb.apiplatform.pojo.ApiTestCacheParameterLog;
import com.jmb.apiplatform.pojo.ApiTestCacheParameterLogTO;
import com.jmb.apiplatform.pojo.ApiTestCacheParameterLogVO;
import com.jmb.apiplatform.service.ApiTestCacheParameterLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Slf4j
@Service
public class ApiTestCacheParameterLogServiceImpl implements ApiTestCacheParameterLogService {
    @Autowired
    private ApiTestCacheParameterLogMapper apiTestCacheParameterLogMapper;
    @Override
    public ApiTestCacheParameterLogVO findApiTestCacheParameterLogById(Integer id) {
        return apiTestCacheParameterLogMapper.selectApiTestCacheParameterLogById(id);
    }

    /**
     * 获取后置处理器调用日志列表
     * @param apiTestCacheParameterLogTO
     * @return
     */
    @Override
    public PageResult<ApiTestCacheParameterLogVO> findInterfaceProcessorLogList(ApiTestCacheParameterLogTO apiTestCacheParameterLogTO) {
        PageHelper.startPage(apiTestCacheParameterLogTO.getPageNum(),apiTestCacheParameterLogTO.getPageSize());
        List<ApiTestCacheParameterLogVO> list = apiTestCacheParameterLogMapper.selectApiTestCacheParameterLogList(apiTestCacheParameterLogTO);
        Page<ApiTestCacheParameterLogVO> page = (Page<ApiTestCacheParameterLogVO>) list;
        return new PageResult<>(page.getTotal(), page.getResult());
    }

    /**
     * 获取后置处理器调用日志列表不分页
     * @param apiTestCacheParameterLogTO
     * @return
     */
    @Override
    public List<ApiTestCacheParameterLogVO> findInterfaceProcessorLogListAll(ApiTestCacheParameterLogTO apiTestCacheParameterLogTO) {
        return apiTestCacheParameterLogMapper.selectApiTestCacheParameterLogList(apiTestCacheParameterLogTO);
    }

    /**
     * 新增后置调用处理器调用日志,并返回自增对象
     * @param apiTestCacheParameterLog
     * @return
     */
    @Override
    public ApiTestCacheParameterLog saveInterfaceProcessorLog(ApiTestCacheParameterLog apiTestCacheParameterLog) {
        apiTestCacheParameterLog.setCreatedTime(new Date());
        apiTestCacheParameterLogMapper.insertApiTestCacheParameterLog(apiTestCacheParameterLog);
        log.info("后置处理器日志新增成功");
        return apiTestCacheParameterLog;
    }
}
